home *** CD-ROM | disk | FTP | other *** search
/ Java Developer's Companion / Java Developer's Companion.iso / Javacup / IN231VFD.TAR / internet / IN231VFD / HouseServer.java < prev    next >
Text File  |  1996-05-21  |  4KB  |  137 lines

  1. //    HouseServer.java - House Server for CyberAgent
  2. //
  3. //    Currently just returns dummied-out static data; eventually would 
  4. //    contact an internet server for dynamic data.
  5. //
  6. //    Copyright (C) 1996 by Dale Gass
  7. //    Non-exclusive license granted to MKS, Inc.
  8. //
  9.  
  10. import java.lang.*;
  11. import java.util.*;
  12. import java.awt.*;
  13. import java.net.*;
  14. import java.applet.*;
  15.  
  16. public class HouseServer {
  17.     final static String prices[] = {
  18.     "$400,000-$999.999",
  19.     "$350,000-$399,999",
  20.     "$300,000-$349,999",
  21.     "$250,000-$299,999",
  22.     "$200,000-$249,999",
  23.     "$150,000-$199,999",
  24.     "$130,000-$149,999",
  25.     "$120,000-$129,999",
  26.     "$110,000-$119,999",
  27.     "$100,000-$109,999",
  28.     "$ 90,000-$ 99,999",
  29.     "$ 80,000-$ 89,999",
  30.     "$ 70,000-$ 79,999",
  31.     "$ 60,000-$ 69,999",
  32.     "$ 50,000-$ 59,999",
  33.     "Under $50,000"
  34.     };
  35.     final static int pricelow[] = {
  36.         400000, 350000, 300000, 250000, 200000, 150000, 130000, 120000,
  37.     110000, 100000, 90000, 80000, 70000, 60000, 50000, 0
  38.     };
  39.     final static int pricehigh[] = {
  40.         999999, 399999, 349999, 299999, 249999, 199999, 149999, 129999,
  41.     119999, 109999, 99999, 89999, 79999, 69999, 59999, 49999
  42.     };
  43.     final static String beds[] = {
  44.     "5+", "4", "3", "2", "1"
  45.     };
  46.     final static String areas[] = {
  47.     "Halifax", "Bedford", "Dartmouth", "County"
  48.     };
  49.  
  50.     House[] listings;
  51.  
  52.     // Constructor - build the standard listings
  53.  
  54.     public HouseServer() {
  55.         listings = new House[3];
  56.     listings[0]=new House("Townhouse", "Bedford",   120000,5,true,  "aaa");
  57.     listings[1]=new House("House",     "Halifax",   200000,2,false, "aab");
  58.     listings[2]=new House("Shack",     "Dartmouth",  80000,3,false, "aac");
  59.     }
  60.  
  61.     // Enumerate each of the criteria
  62.  
  63.     public String[] enumPrices() { return prices; }
  64.     public String[] enumBeds()   { return beds; }
  65.     public String[] enumAreas()  { return areas; }
  66.  
  67.     int getIndex(int array[], int val) {
  68.         int i;
  69.     for (i=0; i<array.length; i++)
  70.         if (array[i] == val)
  71.             break;
  72.     if (i == array.length)
  73.         i = -1;
  74.     return i;
  75.     }
  76.  
  77.     // Perform a server query
  78.  
  79.     public Vector query(int priceA[], int areaA[], int bedA[]) {
  80.         Vector result = new Vector();
  81.     int i;
  82.  
  83.     for (i=0; i<listings.length; i++) {
  84.         House h = listings[i];
  85.  
  86.         String a = h.getArea();
  87.         int areacode;
  88.         for (areacode=0; areacode<areas.length; areacode++)
  89.             if (a.equals(areas[areacode]))
  90.             break;
  91.  
  92.         int range, p = h.getPrice();
  93.         for (range=0; range<prices.length; range++) {
  94.             if (p>= pricelow[range] && p <= pricehigh[range])
  95.             break;
  96.         }
  97.         int b = h.getBeds();    /* Convert bed count to beds[] index */
  98.         if (b > 5)
  99.             b = 0;
  100.         else
  101.             b = 5 - b;
  102.  
  103.         /* We now have price "range", "areacode", and number of beds
  104.          * to match against our search criteria
  105.          */
  106.  
  107.         if (getIndex(areaA, areacode) != -1 &&
  108.             getIndex(priceA,range   ) != -1 &&
  109.         getIndex(bedA,  b       ) != -1)
  110.           result.addElement(h);
  111.     }
  112.     return (result);
  113.     }
  114.  
  115.     // Get the camera views for given house and floor (0 == basement)
  116.  
  117.     public static Camera []getCameras(House h, int floor) {
  118.         Camera cams[];
  119.         if (floor == 0) {
  120.         cams = new Camera[2];
  121.         cams[0] = new Camera(320, 220, 100, "Office");
  122.         cams[1] = new Camera(345, 150,  80, "Family Room");
  123.         } else if (floor == 1) {
  124.         cams = new Camera[3];
  125.         cams[0] = new Camera(355, 145, 135, "Kitchen");
  126.         cams[1] = new Camera(105,  85,  60, "Living Room");
  127.         cams[2] = new Camera(290, 190, 270, "Entrance");
  128.     } else {
  129.         cams = new Camera[3];
  130.         cams[0] = new Camera(355, 135,  80, "Bedroom");
  131.         cams[1] = new Camera(380, 245,  90, "Bathtub");
  132.         cams[2] = new Camera(505, 165, 200, "Bathroom");
  133.     }
  134.     return (cams);
  135.     };
  136. }
  137.